home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Ham Radio 2000 #2
/
Ham Radio 2000 - Volume 2.iso
/
HAMV2
/
TCP_IP
/
TNOS230B
/
NEW2TN2.01
< prev
next >
Wrap
Text File
|
1995-09-23
|
27KB
|
658 lines
Upgrading TNOS to release 2.01
http://www.lantz.com/Update2.01.html
TNOS 2.01 will be the next release of TNOS, to be released sometime
before the formation of the United Federation of Planets. Hopefully,
this list of changes will give you an idea of the scope of work that
has occurred between versions. Of course, it may be faster just to
re-read the docs when the next version is released.
This document is divided into:
* Bug Fixes
* Improvements
* Minor Changes
* Known Bugs
* To-Do List
------------------------------------------------------------
Bug Fixes:
The following bugs have been squashed.
* Cleaned up a minor buglet and a memory leak in forwarding code
* Clean up mods from Paul for the APOP code - got in too late for 2.00
* Creation of 'BID' from PINE MessageIDs not unique enough - fixed
* Above included in patchkit 1
* FBB Compressed forwarding wasn't closing a file when receiving msgs
This resulted in one open file for each message :-(
* FBB Compressed forwarding wasn't removing a tempfile when sending msgs
If you used FBB compression and SENT a message, then it ALSO was leaving
a tempfile hanging around.
* FBB Compressed forwarding crashes under certain conditions :-(
Also, in some cases (I won't get into the long involved description), you
would get a glorious crash after sucessfully sending an FBB compressed
message.
* The fix to prevent AXListeners for IP callsigns broke support for ROSE
So, that fix was removed and a better one took it's place......
* Fixed a *VERY SELDOM* bug in FBB forwarding
This would occur ONLY if you had two machines sending the same messages
at the same time (yep! I'm REALLY beating on this stuff ;-). If the initial
bid check (before sending the 'FS' command passes, and then when in dosend()
it failed (just came in from another BBS in that brief time), then it would
send out a 'NO - Already have ....' message, causing a protocol error on
the remote end. Now, if the bid fails in dosend() (after passing earlier),
we assume that it came in since then, and silently drop the copy in the
bit-bucket.
* Also another infrequent occurance which COULD lose messages
This buglet is in FBB, too, but we can't do anything about that ;-)
*IF* garbage comes from a receiving FBB-style PBBS, instead of a forward
negotiations ('FA', 'FB', 'FF', or 'FQ'), then FBB (and TNOS 2.00) would
treat the reception of data (without it's analysis) as an indication that
the messages sent were received correctly, and would remove them from the
queue, and delete them, if personal messages. While this is very rare, we
SAW a case where the 'NO - Already have...' bug was sent, and FBB marked
the messages as received okay. After looking, the TNOS code ALSO was not
checking for a valid 'F' command. Now this extra protection is added.
* A rare one with Expiry and new message arrival in SMTP
This ONLY occurred when EXPIRY was happening and a message came in while
the EXPIRY process was *between* areas. A very brief time, but it did
happen to Mike TWICE in a couple of days (he must not live right ;)
Fixed now.
* Discovered that part of the White Pages support never got finished
Once a BBS got entered into the wpagebbs file, if changes were made, they
never got updated. The support for the wpages file was fine, though.
* Fixed the display of the 'mbox motdalways' command
While this was a boolean type command, it was being processed as a numeric
command, making the display (and input) numeric rather than [on|off].
* Fix to the POP3 Client code. Sometimes got out of sync with the server
This was one that slipped through the cracks with the APOP additions.
* A minor fix in FBB Forwarding code, if a temp file error is found
* A workaround for a missing attribute in MSYS BBSs SIDs
If a PBBS supports FBB-style forwarding, it supports MIDs on personal
messages. Any BBS that supports MIDs is SUPPOSE to advertise it with a 'M'
in their SID. MSYS does NOT. So, we now assume the 'M' when we see the 'F',
whether it is there or not. Not our problem, but it's fixed.
* Fixed a minor display problem with RDATE
* Fixed a bug which seg faulted if BBS 'KS' command had no parameters
* Workarounds for older GCC's in compiling STATS files
* Another fix for PINE-generated messages and bid checking
Since the purpose of bidchecking in the SMTP code is to prevent PBBS dups,
this needed mod, simply tells the SMTP code that a bid check is not needed
if it came from a PINE or Chameleon mailer. This SHOULD finally stop the
occasional bounced PINE messages.
* Applied RXECHO patch for AXIP by John Woolner/VK1ZAO
* Last (hopefully) memory leak with FBBCMP plugged
If you are using FBB compression, and you have NO messages outgoing, you
forfit 20K of memory! Not a big concern on Unix, but BIG TROUBLES for DOS!
Easy fix, though.............
* Fix for crash if typo in forward.bbs for interface name
* Fixed bug with 'ax25 bct' being used for all interfaces
The 'ifconfig iface ax25 bct' was not being used for the regular, timer
generated beacons. This is now fixed.
* Fixed a buglet in the routine that determines if an area is public
This one came in with 2.00, and would SOMETIMES yield the proper result, and
sometimes not. This would result in some public messages being deleted
after being forwarded (if they originated outside of xNOS and had no
'X-BBS-Msg-Type:" line), and in some cases messages being unexpectedly
held.
* Fixed a buglet in the Unix session manager code, dealing with options
This is one that was inherited from JNOS/Linux, and found thanks to
Bob Smith <bob@snuffy.penfield.ny.us> (an alias if I ever heard one ;-)
* Fixed a buglet with the BBS '!' command modifier
The skipping of lines beginning with '-' in the areas (and areas.sys) file
(for historical compatibility) was not being handled correctly, causing
these lines to be analyzed as area names.
* Fixed a long-standing occasional bug with mail area locking
* Found and fixed a few accesses to invalid memory
* Killed Conference Bridge '/who' display buglets
Actually surprising it worked ;-)
* Fixed a small buglet in FBB-style forwarding in area handling
* Fixed a small buglet that didn't delete unused sockets in ttylink
If the TNOS station had 'attend off', then each attempt would leave a
lingering dead socket. Depending on system usage and number of sockets
selected, this could eventually make it so that there were NO available
sockets.
* Fix to prevent crashes if attempting to view 'hostname' when not set
Thanks to Alan B. Clegg <abc@gateway.com> for this one.
* Fixed a BBS security/Domain translate bug......
Jack discovered the answer to the problems he was having. It seems that if
'dom trans' is ON, the security assignments did not sense ampr addresses
properly.
* Small fix for mailers that like to give leading spaces on email names
* Fix for Chameleon mailers and BIDs
* Fixed bug where BBS and RLOGIN pings left a socket open till session ended
* Fixed a filename buglet with BBS message delegation.
* Fixed some NNTP buglets
* Fixed a subtile bug with 'tcp clean'
This only cleaned out the first FIN_WAIT2.
* Fixed a buglet that would place redundant WP update records in update.wp
* Above included in patchkit 3
* Added fix (from nos-bbs) for FBB Yapp receiving
This makes a 0 packet length into a length of 256, as per FBB spec.
* A few assorted sun-related changes/fixes
* DNS Server bug imported from nos-bbs
* Fixed a quirk that passed a blank command in BBS sysop mode back to the BBS
* Fix for properly leaving off the users' root dir in ftpserver with PWD command
* Assorted FTPserver fixes for parsing the ftpusers file
* Flow control fix for non-Linux Unixes (eliminated overruns)
* Simple fix to RFC-822 header parsing to allow tab following colon
Should also make whitespace optional.
* Fixed problem with case significance in parsing alias file
------------------------------------------------------------
Improvements:
The following optimizations and improvements have occurred.
* Added a 'smtp notify [on | off] command
This toggles whether or not you get a 'New mail for .....' message for
each incoming message.
* Changed the WPAGES lookup routines to ALSO look in the wp*.new files
The wpages and wpagebbs files are SORTED for rapid access, and all new
entries are placed in wpages.new and wpagebbs.new, which is UNSORTED. These
*.new files are added to the base file, re-sorted, and expired when the
bid timer expires (or you 'bid kick'). The *.new file are NOW looked at
(sequentially, of course) for expansion and lookup. Since the SORTED files
will give faster, more responsive access, it is suggested that you set
your 'wpage timer' to a value that will help insure SORTED responses.
* Added support for a WP Client, which generates WP Updates
This added the 'wpage client [on|off]', 'wpage destinations [bbscall]' and
'wpage update [#hours| now]' commands. If the client is on, then any
activity that should be reported to the PBBS network via WP Updates is
added to a spool/update.wp file, which is sent to all the PBBSs listed in
the 'wpage destinations' (1 message per BBS to 'WP@bbscall') when the
'wpage update' timer expires or gets 'kicked' with a 'wpages update now'
command.
* Added support for a WP Server, which accepts and processes WP Updates
This added the 'wpage server [on|off]' command and associated code.
* Added an '/include' command to the BBS message mini-editor
Along with this, the output of the '/original' command was changed to
show the message line numbers. The syntax is '/i xxx [yyy]', where 'xxx' is
the first line number you want included (from the '/o' output), and 'yyy'
is the last line number (or include to rest of file, if 'yyy' is omitted).
This command (like '/o') only works with the 'SR' (or 'reply') command.
The included lines are prepended with '> '.
* Added code for temporary white pages additions
This addon is similar to how FBB handles White Pages. When a non-authorative
WP user entry comes in (from any source), a temporary entry is created for a
user. Non-authoritative entries are ones that are 'guessed' from the traffic
flow, but were not directly entered by the user (or a sysop) for the
purposes of White Pages update.
The 'wpages temporaryage xxx' command sets the age of a temporary entry,
which defaults to 30 days. When an entry has remained in the wpage.tmp file
for this long, the master wpages file is updated with this temporary info.
This prevents the master wpages info from being incorrectly updated simply
because a user sends a message from a BBS other than their regular HOME BBS.
* Better handling of AUTO/LOCAL ax25 routes
Current code takes any 'AUTO' route given to it (by a BBS gateway, a
Command Session 'connect/split' command, or a forwarding connect command)
and *if* there was a LOCAL (manually entered) route, that route disappears,
and is replaced by the AUTO one. This AUTO route disappears when that
connection is severed, leaving (now) *NO* route.
Now, if there is a LOCAL route (entered by the sysop, with a 'ax route add'
command), then any other AUTO routes can be specified *BUT* they are
effectively ignored. A LOCAL route will NOT be overwritten by an AUTO
route.
* FINALLY found an easy way to by-pass LZW for local-to-local smtp sessions
Until I can come up with something better, this at least cuts down the CPU,
memory, and time consumption of LZW for internal mail processing in the
SMTP client<->SMTP server.
* Optimized the memory allocation for FBB Compression under DOS
Original way allocated ~20K when a FBB-style compressed forwarding session
began, and didn't release this memory until the session was complete, even
though it was only used at the few instants that encoding/decoding was
actually being done. While this works fine with Unix and under DOS if the
TNOS station is an station with only one or so stations that it forwards
with, this CLEARLY has problems for heavily used TNOS/DOS stations. Under
these rules, to compress forward to 5 PBBSs, takes a minimum of 100K of
available memory.
Now, the memory is allocated JUST before the encode/decode functions are
called, and freed immediately afterward. This buys a LOT more memory
efficiency. But, not stopping there, I changed the memory allocation
to call functions that WAIT if the memory isn't immediately available. This
will allow MANY more forwarding sessions to co-exist. When it requires the
20K of memory, if it is NOT available at the time, that process will sleep,
and be awoke when another PBBS forwarding process frees the memory IT was
using.
These two changes SHOULD make TNOS's FBB Compression support much more
"world-class".....
* Added a new forward command to queue up messages from an area
The 'forward queue <bbs> <all | area>' command allows you to
add to the queue of a bbs (defined in the forward.bbs file), all of the
messages in a particular area (or all areas) defined for that bbs. This is
good when adding a new bbs that you wish to send the entire 'backlog' of
messages to, in order to catch them up. All non-deleted messages are added
to the queue. The actual message headers are NOT analyzed, so it COULD
try to send to a bbs that NORMALLY it would have 'seen' as already having
the message. The receiving BBS (in this case) will end up rejecting the
messages that it already has. While this is not optimum, it serves the
desired purpose, with little code, and the lack of optimization shouldn't
matter, since this SHOULDN'T be a commonly used feature.
* Added code to FBB-style forwarding to defer messages already incoming
This code does one final check before telling the remote PBBS to send the
message, and looks to see if there is another FBB-style forwarding session
going on that has *already* started accepting this message. If so, the
message will be deferred from this BBS, waiting to a later time, when either
the message DID make it through successfully, or if not, it will be tried
again.
* Added needed conditional code for compiling on Sun3
The primary 'fix' needed for this platform was a workaround for the old
Sun compiler, which returns from sprint() the POINTER to the
buffer that the data was placed into, rather than the number of characters
placed there. There are now SPRINTF and VSPRINTF macros, used in the few
occasions where sprintf() is assumed to return the count. All other changes
are in '#if sun' conditionals.
* Added code to make FBB-style forwarded comply to subchannel assignments
While this required a LOT of code to be rewritten, the basic change is that
now incoming FBB-style forwarding sessions honor the subchannel assignments.
What this means is that if a BBS is defined to have a subchannel restriction:
* Any incoming forwarding session will be allowed to SEND
incoming messages even if there is no available subchannel slot.
* When incoming forwarding sessions turn around the data flow
to receive from us, we will ONLY send if either we have already been
granted a subchannel slot, or if there is one currently available.
* Outgoing forwarding will only occur if there is a subchannel slot
available.
* Any BBSs that cannot receive a subchannel slot are deferred.
* If any outgoing session is deferred due to the lack of an available
subchannel slot, the forwarding process will be 'kicked' after each
BBS has completed processing, to allow deferred sessions to be
processed at the earliest possible time.
* If an FBB-style process initially cannot receive a subchannel slot,
it is attempted each time forwarding control is passed back to it. If
later in the forwarding session a slot becomes available, it will be
granted to that existing process.
These rules, of course, do NOT apply if the BBS does NOT have a subchannel
assignment. Using these, you can easily restrict the number of outgoing
PBBS forwarding sessions for better utilization of limited bandwidth.
* Added a new mbscripthook for email addresses too vague
This MIGHT help with the age-old problem of users sending to "ALL@USA"!
This hook gets called for each email message that is not sent by a SYSOP
or via PBBS forwarding. It is passed the original address being mailed to.
The script hookfile (spool/cmds/vague.sys) can then look at the address,
and depending on criteria that YOU set, can warn the user that the address
to too vague. On my system, sending to "all@*" gets:
*** The email address you've given to FAR too vague! Very few (if any) will
*** read it addressed as it is currently. Suggest you abort this message
*** (with '/abort'), and re-enter it with a more descriptive address!
Doing it in this manner provides the most versatility, allowing each
SYSOP to determine which addressing he/she wishes to 'preach' at the user
about. It also has the benefit of not needing to 'rewrite' these to a
special area for garbage disposal, unless you WISH to. You could always
rewrite (in this example) "all@*" to an area named 'trash', and tell the
user in the hookfile that this message, as addressed, will not be accepted.
The choice is yours, but this will give us a tool to help in educating the
average user.
* Added the 'state' of BBS users to the Conference '/who' display
Required a bit of rewriting to avoid 'code-bloat' ;-)
* Support for ELF binaries added
In actuality, the change was EXTREMELY minor, but it took a while to find.
And while I'd like to take credit for it, the idea came from Bob Smith
<bob@snuffy.penfield.ny.us> and his porting of TNOS to the Sun3. He
found that the stacksizes needed adjustment in order to get the Sun up and
running. Once he pinned it all down and submitted the diff, I got to thinking
that MAYBE the stacksize COULD be marginal, and this COULD account for the
occasional "how did that happen" crashes we've seen. So I applied his
patch for large stacksizes on Unix.
Then I got to thinking that this COULD account for the screwy things I'd
seen trying to get ELF binaries to run. So, one compile later, we have ELF
working. Thanks for the idea, Bob!
* Added diffs for compiling on BSDI
* Now 'certified' for use with GCC 2.7.0
There are about 1100 warnings of unused parameters and 75 warnings of
comparisons between signed and unsigned variables, but these are merely
annoying, and not an indication of a problem. The unused parameters
will be handled with the new 'OPTIONAL' macro. Soon will get around to
patching all these to be 2.7.0-happy! ;-)
* All unused parameters warning fixed for GCC 2.7.0
* All comparison warnings fixed for GCC 2.7.0
* Patches from Paul to prevent using a less efficient MX record
This keeps track of MX's to the local host, and prevents using an MX of
greater value, if one of a lesser value is for 'us'.
* Patch from Bruce Tenison for having a group subscription welcome file
When a member subscribes to a defined 'group' using the Reqsvr, a check is
made to see if there is a 'groupname.hlp' file in the spool/help directory.
If there is a file for that particular group, this is sent to the user by
the Reqsvr.
* Added a catalog file for less commonly used strings
Like the Unix catalog files, this is a place for strings to be looked
up, instead of having the strings in memory as part of the executable.
While MSDOS will gain from the memory savings, all versions will gain,
in that language localizations can (at least partially) be done using this.
This feature can be disabled with the config.h file and the 'CATALOG' flag.
* Stricter callsign checking option available
The 'STRICT_CALL' flag in config.h will reject any logins from non-callsigns
and will not try to PBBS forward any messages from non-callsigns. This
option will be OFF in official exe's to avoid confusion. This one was
contributed by Mat.
* Added ftpusers permission to allow denying use of '*** linked to'
This security hole had already been 'patched' in JNOS, so just took that
patch. The permission value is different, though:
# no_linkedto 262144 0x00040000 (No '*** LINKED TO' allowed)
* Added a 'mbox nosubjbell' command
This command (if set to on), will strip out any bell character entered as
part of a BBS message's subject line. Many (including myself) get annoyed
at having listings 'beep' at them.
------------------------------------------------------------
Minor Changes:
The following minor changes have occurred.
* Modifications made for clean compiles on Borland C 3.1
* Above included in patchkit 1
* Placed checks in BBS login to prevent usernames with spaces
For whatever the reason, I've noticed users logged in from time to time
with something like this "c username" as the username. Obviously someone
no paying close attention to what they were doing. Now TNOS will inform
them that no spaces are allowed, and make them try again.
* A small optimization in the changearea() function
If you call changearea() now to change to the SAME area, then it is
optimized to NOT close the area and re-open the same one.
* Changed the 'mbox wpages [on|off]' to 'wpages support [on|off]'
Just common sense ;-) *** CHANGE THOSE CONFIG FILES ***
* Added the date to the statline display
* Optimized the stats code, to reduce redundant code - smaller footprint
* Unix Makefile changes for ease of customization
Made a 'LOCKDIR' definition to define the directory where your lock files
are found, and use NOSDIR within buildctl and ctlcheck, instead of hard-coded
paths.
* Changed the algorithm used to calculate the stats averages
Previously the average included the partial day you were on for the averages
on the 'general' sub-option. Since all of the other displays are based on
NOT including the current, partial day, I changed the averages to subtract
out the data for the current day before averaging. The averages are also
now rounded up, instead of down.
* TNOS/Linux version strings changed to TNOS/Unix
(makefile.lnx renamed to makefile.unx)
* Readme file updated with BSD/OS notes
* Directory structure at ftp.lantz.com (and the mirror) changed
The 'linux' directory will be renamed 'unix' starting with 2.01.
* Added a 'security encode' BBS command
This (available only to sysops) just extends the existing security command
by looking to see if there is a parameter given, and if it starts with 'e'.
* Minor internal changes to the REQSVR code
* Above included in patchkit 3
* A few misc cleanups
* Added a prompt to the 'stats clear' command
After twice accidently clearing stats during testing, I figured this *might*
be needed ;-) You can bypass the prompt with 'stats clear yes'.
* In BBS, when deleting a held message, hold state is now cleared
* If GCC, added GCC version to the Command Session 'status' command
* Added an optional site-specific makefile file extension
The Makefile for Unix now includes code to include a 'make.inc' file, if
it exists. Everyone is encouraged to use the stock, unmodified Makefile.unx
and place any OS or site-specific changes in the make.inc file.
* FBB forwarding will not defer zero length messages
------------------------------------------------------------
Known Bugs:
The following are known bugs that are being worked on during the development
of release 2.00. These may or may not be fixed in release 2.01.
* Domain cached MX records (dummy ones) added and not removed
Seems if you have 'domain usemx' on and it queries for a MX that is NOT
found, that a dummy record gets added to the cache that NEVER expires,
though there is an expiration time in it.
* ? CNAMEs seems to need to be fully qualified? Bug?
* Forward file locking needed
If a record gets added into a *.fwd file when a forwarding session is
concluding, sometimes the new record gets missed, and the *.fwd file
gets deleted. Rare, but needs to be addressed.
* Sending mail to the proxy server, doesn't seem to work properly
* Displaying parameter strings with a '\r' needs adjustment
If you define a parameter string (like 'ax25 bctext') to be multi-line
strings with a '\r', the output to the screen may not be what you expect.
* None other at this time.... ;-)
------------------------------------------------------------
To-Do List:
The following are things on my 'to-do' list that may eventually
be done, but not necessarily by the next release.
* Investigate incorporating into TNOS a userfs extension
This would allow *any* Linux (and possibly other Unix) program to open a
file and access certain TNOS features. For instance a terminal program like
minicom could open a device:
/tnos/connect/lan/k0zxf/ko4ks-1/813044
and do the equivalent to 'connect lan k0zxf ko4ks-1 813044'.
You could incorporate a copy of your current usage stats into a email
message in Pine, by simply inserting a file named /tnos/stats/usage/general.
* Add capability to allow use of OS commands
This WILL be limited to Unix version.
* FTP permissions improved
The new UNIX-like dir display needs a little more work with the permissions
portion of the display...
* Add in UNIX permissions checking to FTP server
This could cause problems with restricted files not being restricted.
* Add better support for PBBS<->Internet mail address translation
The 'translate' file and improved handling of aliases is a START, but more
work needs to be done here. Maybe a 'translate.out' file...
* Still better handling of AUTO/LOCAL ax25 routes
Improvement by making an ax25 route entry part of the connection block,
using this unique AUTO route for this connection only.
* Support (optimization) for ncurses 1.9.x for performance
* Color support output to Unix console
The various color commands don't work with the Unix kernel and curses.
Annoying, but just possible unexpected output. No crashes.
* Consider altering import code to prevent holding imported messages
Only bypass user permissions checking, not bad word check holding.
* Consider providing a ROSE whitepages server
* Consider providing separate SMTP/BBS rewrite files